home *** CD-ROM | disk | FTP | other *** search
- EXEOBJ
- OUTPUT bfc
-
- OBJSIZE EQU 65536
- CODSIZE EQU 32000
-
- read EQU -$2a
- write EQU -$30
- input EQU -$36
- output EQU -$3c
- closlib EQU -$19e
-
- ; d0
- ; d1 len
- ; d2
- ; d3 1
- ; d4 byte
- ; d5 offset
- ; d6
- ; d7
-
- ; a0
- ; a1
- ; a2 stack
- ; a3 cdptr
- ; a4 4
- ; a5 code
- ; a6
-
-
- initcode:
- dc.l $3f3,0,1,0,0,OBJSIZE/4-9,$3e9,OBJSIZE/4-9
-
- lea (CODSIZE,pc),a5
- moveq #4,d0
- move.l d0,a4
- move.l (a4),a6
- jsr -810(a6)
- move.l d0,a6
- moveq #1,d3
- initcode2:
-
-
-
- clrmem
- move.l a5,a2
- moveq #-1,d5
- .. clr.b (a2)+
- dbra d5,..
- move.w #$3f2,-(a2)
- move.l a5,a2
-
-
-
- move.b d3,(a5)
- mainloop
- move.b (a5),d4
- lea (code,pc),a3
-
- .. move.b (a3)+,d5
- move.b (a3)+,d1
- cmp.b (a3)+,d4
- blo.b ..
- bne.b advance
- add.l d5,a3
-
- copy move.b (a3)+,(a5)+
- subq.b #1,d1
- bne.b copy
-
- addq.b #8,d5
- bcc.s noloop
- move.l a5,-(a2)
- noloop
-
- addq.b #3,d5
- bne.s noendl
- move.l (a2)+,a0
- move.l a0,d0
- sub.l a5,d0
- move.w d0,(a5)+
- neg.w d0
- subq.w #4,d0
- move.w d0,-(a0)
- noendl
-
-
- advance
- clr.b (a5)
- readbyte
- jsr input(a6)
- move.l d0,d1
- move.l a5,d2
- jsr read(a6)
- readbyte2
-
- tst.b d4
- bne.s mainloop
-
- move.l a2,a5
- swap d3
- writebyte
- jsr output(a6)
- move.l d0,d1
- move.l a5,d2
- jsr write(a6)
- writebyte2
-
- cleanup
- move.l a6,a1
- move.l (a4),a6
- jsr closlib(a6)
- moveq #0,d0
- rts
- cleanup2
-
- rightcode:
- addq.l #1,a5
- leftcode:
- subq.l #1,a5
-
- endwcode
- addcode:
- addq.b #1,(a5)
- subcode:
- subq.b #1,(a5)
- dc.w $6600
- endwcode2
-
- whilecode:
- dc.w $6000
- whilecode2
-
- code:
- endw: dc.b endwcode-endw-3,6,']'
- while: dc.b whilecode-while-3,4,'['
- right: dc.b rightcode-right-3,2,'>'
- left: dc.b leftcode-left-3,2,'<'
-
- out: dc.b writebyte-out-3,writebyte2-writebyte,'.'
- sub: dc.b subcode-sub-3,2,'-'
- in: dc.b readbyte-in-3,readbyte2-readbyte,','
- add: dc.b addcode-add-3,2,'+'
-
- beg: dc.b (initcode-beg-3)&$FF,initcode2-initcode,1
- end: dc.b cleanup-end-3,cleanup2-cleanup,0
-
- dx.b OBJSIZE+CODSIZE
-
- END
-